Apama (software)
   HOME

TheInfoList



OR:

Apama is a
complex event processing Event processing is a method of tracking and analyzing (processing) streams of information (data) about things that happen (events), and deriving a conclusion from them. Complex event processing, or CEP, consists of a set of concepts and techniques ...
(CEP) and
event stream processing In computer science, stream processing (also known as event stream processing, data stream processing, or distributed stream processing) is a programming paradigm which views data streams, or sequences of events in time, as the central input and o ...
(ESP) engine, developed by
Software AG Founded in 1969, Software AG is an enterprise software company with over 10,000 enterprise customers in over 70 countries. The company is the second largest software vendor in Germany, and the seventh largest in Europe. Software AG is traded on t ...
. Apama serves as a platform for performing streaming analytics over a range of high volume/low latency inputs and applications, such as IoT devices, financial exchanges, fraud detection, social media and similar. Users can define data patterns to listen for and actions to take when these patterns are found, which are defined in the provided
domain-specific language A domain-specific language (DSL) is a computer language specialized to a particular application domain. This is in contrast to a general-purpose language (GPL), which is broadly applicable across domains. There are a wide variety of DSLs, ranging f ...
called the Event Processing Language (EPL). The core Apama engine is written in
C++ C++ (pronounced "C plus plus") is a high-level general-purpose programming language created by Danish computer scientist Bjarne Stroustrup as an extension of the C programming language, or "C with Classes". The language has expanded significan ...
; the process can also optionally contain a JVM for interacting with user created
Java Java (; id, Jawa, ; jv, ꦗꦮ; su, ) is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea to the north. With a population of 151.6 million people, Java is the world's List ...
code. Apama focuses on high throughput, low latency and memory efficient performance; used in both
Intel Intel Corporation is an American multinational corporation and technology company headquartered in Santa Clara, California. It is the world's largest semiconductor chip manufacturer by revenue, and is one of the developers of the x86 seri ...
benchmarks and smaller machines such as the
Raspberry Pi Raspberry Pi () is a series of small single-board computers (SBCs) developed in the United Kingdom by the Raspberry Pi Foundation in association with Broadcom. The Raspberry Pi project originally leaned towards the promotion of teaching basic ...
, routers and other
Edge Edge or EDGE may refer to: Technology Computing * Edge computing, a network load-balancing system * Edge device, an entry point to a computer network * Adobe Edge, a graphical development application * Microsoft Edge, a web browser developed by ...
/IoT devices. It is particularly noteworthy within the CEP space as being one of the earliest projects, a long term market leader, and innovator of many patents.


History

Apama Ltd. was founded in 1999 by Dr John Bates, Dr Giles Nelson and Dr Mohamad Afshar, who met while undertaking research at the Cambridge University Department of Computer Science and Technology. In 2005, Apama Limited was acquired by
Progress Software Progress Software Corporation (Progress) is an American public company that offers software for creating and deploying business applications. Headquartered in Burlington, Massachusetts with offices in 16 countries, the company posted revenues ...
for $25 million. In 2013, Apama was acquired by
Software AG Founded in 1969, Software AG is an enterprise software company with over 10,000 enterprise customers in over 70 countries. The company is the second largest software vendor in Germany, and the seventh largest in Europe. Software AG is traded on t ...
from Progress for an undisclosed amount. In 2016, a
freemium Freemium, a portmanteau of the words "free" and "premium," is a pricing strategy by which a basic product or service is provided free of charge, but money (a premium) is charged for additional features, services, or virtual (online) or physical (o ...
version, Apama Community Edition, was released, alongside supporting forums and
GitHub GitHub, Inc. () is an Internet hosting service for software development and version control using Git. It provides the distributed version control of Git plus access control, bug tracking, software feature requests, task management, continuous ...
spaces.


Overview


Event Processing Language

Applications for Apama are authored in the Event Processing Language (EPL). EPL contains language features designed purely for
Event Driven Programming In computer programming, event-driven programming is a programming paradigm in which the flow of the program is determined by events such as user actions (mouse clicks, key presses), sensor outputs, or message passing from other programs or thr ...
,http://www.apamacommunity.com/wp-content/uploads/2016/06/SAG_The_Apama_Platform_20PG_WP_Jun16-Web.pdf including: * Events - Simple data structures containing fields and actions * Monitors - Similar to classes in other languages, monitors contain listeners and actions and are loaded upon injection * Listeners - Declarative patterns defining interesting conditions/combinations of events. Aggregation, temporal and filtering operators are supported * Actions - Imperative functions, usually run by listeners upon activation or monitors upon load * Contexts - Similar to threads, monitors exist inside contexts * Channels - Mechanism for communicating between contexts and external systems * Streams - Ordered partitions of events with support for aggregation and SQL-like queries The EPL C++/Java-like syntax is designed to create CEP applications succinctly in conjunction with the above features, an example of which can be found below: event MyEvent monitor MyMonitor


Apama Queries

Apama Queries is an alternate language for creating rules over defined data sets, such as the past five minutes of received data or past twenty events received, in an automatically multi-threaded environment that scales across machines. Apama Queries are better suited for monitoring very large sets, such as bank transactions. Typically, each entity (i.e. account holder) will be partitioned and processed independently of the rest of the set. Queries and Monitors can communicate via channels. An example of the previous scenario can be found below: query FindSuspiciousWithdrawals


Designer

The Software AG Designer is an
Eclipse An eclipse is an astronomical event that occurs when an astronomical object or spacecraft is temporarily obscured, by passing into the shadow of another body or by having another body pass between it and the viewer. This alignment of three ce ...
based IDE with special support for developing and deploying Apama applications, which is included in a standard installation. Features include code assistance, package management, profiling, GUI development and deployment management.


Plugins

Apama supports the ability for users to create plugins to extend capability. These plugins come in two forms, EPL plugins ( to add features to EPL) and Connectivity plugins (for communicating with the outside world). C++ and Java APIs are available for both plugin types. Connectivity plugins come in two forms, codecs (which translate data from one format to another, such as the internal Apama representation to
JSON JSON (JavaScript Object Notation, pronounced ; also ) is an open standard file format and data interchange format that uses human-readable text to store and transmit data objects consisting of attribute–value pairs and arrays (or other ser ...
) and transports (which handle sending/receiving to/from external systems, such as JMS). Connections to external systems are made by composing chains of codecs and one transport to achieve the desired topology; these connections are defined by a
YAML YAML ( and ) (''see '') is a human-readable data-serialization language. It is commonly used for configuration files and in applications where data is being stored or transmitted. YAML targets many of the same communications applications as Exte ...
configuration file at start-up or through dynamic management with the provided tools. Several pre-built plugins for popular technologies (e.g. R,
MQTT MQTT (originally an initialism of MQ Telemetry Transport) is a lightweight, publish-subscribe, machine to machine network protocol for Message queue/Message queuing service. It is designed for connections with remote locations that have devices ...
,
Kafka Franz Kafka (3 July 1883 – 3 June 1924) was a German-speaking Bohemian novelist and short-story writer, widely regarded as one of the major figures of 20th-century literature. His work fuses elements of realism and the fantastic. It typ ...
,
HTTP The Hypertext Transfer Protocol (HTTP) is an application layer protocol in the Internet protocol suite model for distributed, collaborative, hypermedia information systems. HTTP is the foundation of data communication for the World Wide Web, ...
,
MatLab MATLAB (an abbreviation of "MATrix LABoratory") is a proprietary multi-paradigm programming language and numeric computing environment developed by MathWorks. MATLAB allows matrix manipulations, plotting of functions and data, implementation ...
) as well as connectivity to other Software AG products (e.g. Universal Messaging,
Terracotta Terracotta, terra cotta, or terra-cotta (; ; ), in its material sense as an earthenware substrate, is a clay-based ceramic glaze, unglazed or glazed ceramic where the pottery firing, fired body is porous. In applied art, craft, construction, a ...
, Cumulocity) are shipped with Apama installations.


Persistence

The Apama process is entirely in memory and supports an optional
SQLite SQLite (, ) is a database engine written in the C programming language. It is not a standalone app; rather, it is a library that software developers embed in their apps. As such, it belongs to the family of embedded databases. It is the most ...
based in-built persistence system. Additionally, the connectivity API supports reliable messaging to systems that support it, such as JMS. Finally, a pre-built distributed memory store plugin is provided with standard installations for use with appropriate back-ends.


Visualization

Apama provides an in-built dashboarding technology developed from within the Software AG Designer, as well as native connections to Software AG's MashZone NextGen.


See also

*
Complex event processing Event processing is a method of tracking and analyzing (processing) streams of information (data) about things that happen (events), and deriving a conclusion from them. Complex event processing, or CEP, consists of a set of concepts and techniques ...
(CEP) - A related technology for building and managing event-driven information systems. *
Data Stream Management System A data stream management system (DSMS) is a computer software system to manage continuous data streams. It is similar to a database management system (DBMS), which is, however, designed for static data in conventional databases. A DBMS also offer ...
(DSMS) - A type of software system for managing and querying data streams *
Event correlation Event correlation is a technique for making sense of a large number of events and pinpointing the few events that are really important in that mass of information. This is accomplished by looking for and analyzing relationships between events. Hi ...
*
Event-driven architecture Event-driven architecture (EDA) is a software architecture paradigm promoting the production, detection, consumption of, and reaction to events. Overview An ''event'' can be defined as "a significant change in state". For example, when a consumer p ...
— (EDA) is a software architecture pattern promoting the production, detection, consumption of, and reaction to events. *
Event stream processing In computer science, stream processing (also known as event stream processing, data stream processing, or distributed stream processing) is a programming paradigm which views data streams, or sequences of events in time, as the central input and o ...
— (ESP) is a related technology that focuses on processing streams of related data. *
Operational intelligence Operational intelligence (OI) is a category of real-time dynamic, business analytics that delivers visibility and insight into data, streaming events and business operations. OI solutions run queries against streaming data feeds and event data t ...
— Both CEP and ESP are technologies that underpin operational intelligence. *
Pattern matching In computer science, pattern matching is the act of checking a given sequence of tokens for the presence of the constituents of some pattern. In contrast to pattern recognition, the match usually has to be exact: "either it will or will not be ...
*
Real-time business intelligence Real-time business intelligence (RTBI) is a concept describing the process of delivering business intelligence (BI) or information about business operations as they occur. Real time means near to zero latency and access to information whenever it ...
— Business Intelligence is the application of knowledge derived from CEP system


References

{{reflist Events (computing)